package com.itany.corejava.code11_io.字节流;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

/**
 * @author 石小俊
 * @date 2023年05月11日 10:13
 */
public class Test02_FileOutputStream {

    public static void main(String[] args) {
        try (
                // 在使用文件输出流时,如果文件不存在,会自动创建
                // 如果文件存在,会覆盖文件中的内容
                // FileOutputStream out = new FileOutputStream("b.txt");
                // 可以选择不进行覆盖,而是在原有内容基础上进行追加操作
                // 参数二:表示指定输入的数据的方式
                // true:表示在文件内容的末尾追加新的内容
                FileOutputStream out = new FileOutputStream("b.txt", true);
        ) {
            // 写入数据,需要将字符串转换成byte数组
            byte[] data = " Hello World".getBytes();
            out.write(data);
            // 在写入数据的时候,只是将数据写入到内存的缓存区中,并没有真正写入到文件中
            // 需要刷新输出流,才能将缓存区的内容真正的写入到文件中,完成数据的传输
            // 刷新输出流的操作,在关闭流之后会自动调用该方法
            // 即:刷新操作可以省略,但是开发中不建议省略
            out.flush();

            System.out.println("数据写入成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
